package cn.iocoder.yudao.module.ai.controller.admin.operationalarm.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 运营中心-报警信息分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class OperationAlarmPageReqVO extends PageParam {
    @Schema(description = "关键字", example = "350")
    private String keyWord;

    @Schema(description = "原始消息编号", example = "350")
    private Long fromMessageId;

    @Schema(description = "在原始消息的消息索引号，从0开始")
    private Integer fromMessageIndex;

    @Schema(description = "当前所属公司编号", example = "21611")
    private String companyId;

    @Schema(description = "当前公司编号及子公司编号列表（后端使用）", example = "21611")
    private List<String> companyIds;

    @Schema(description = "报警消息编号(重复传做更新操作)", example = "27669")
    private String alarmId;

    @Schema(description = "报警级别")
    private String alarmLevel;

    @Schema(description = "报警类型", example = "1")
    private String alarmType;

    @Schema(description = "报警描述")
    private String alarmDesc;

    @Schema(description = "报警地点")
    private String equipmentLocation;

    @Schema(description = "报警起始时间（yyyy-MM-dd hh:mm:ss）")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] startTime;

    @Schema(description = "报警结束时间（yyyy-MM-dd hh:mm:ss）")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] endTime;

    @Schema(description = "报警证据")
    private String alarmEvidence;

    @Schema(description = "日志文件")
    private String logStr;

    @Schema(description = "处置状态", example = "2")
    private String handleStatus;

    @Schema(description = "错误编码")
    private String errorCode;

    @Schema(description = "相关参数")
    private String relativeParams;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "供应商id", example = "1856")
    private Long suplierId;

    @Schema(description = "详细描述", example = "adsf")
    private String alarmDetailDesc ;
}